The indexing and searching of structured data are important functionalities for many businesses on both sides of sales transactions. For example, sellers may provide access to catalog data (including, for example, product information on various products for sale) to buyers to allow buyers to select items to purchase or contract for. This type of usage is especially prevalent for businesses, which often procure items in large quantities directly from a supplier. Traditionally such structured data was stored in dedicated databases. An authorized buyer, for example, would gain viewing access to a supplier's database and thus be able to directly search the products in the database.
Recently there has been increased movement of data to the cloud. In such cloud environments, there is a lot more data (in both quantity and size) to be stored. This can complicate the process of indexing the data in order for it to be efficiently stored, but also creates the problem of efficiently storing such large amounts of data, potentially across multiple tenants. It is common, for example, for tenants to store catalog data in a multi-tenant architecture. It can be difficult, however, for a user to search for catalog data from multiple catalogs simultaneously and obtain relevant results. Different catalogs can have drastically different search result quality when using the same search result ranking criteria.